package com.rc.web.mapper;

import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.query.QueryWrapper;
import com.rc.pojo.po.QuestionOption;

import java.util.List;

import static com.rc.pojo.po.table.QuestionOptionTableDef.QUESTION_OPTION;

/**
 * 问题选项表 映射层。
 * 提供问题选项相关的数据库操作接口
 */
public interface QuestionOptionMapper extends BaseMapper<QuestionOption> {

    /**
     * 根据问题ID列表查询选项
     * @param questionIdList 问题ID列表
     * @return 选项列表
     */
    default List<QuestionOption> selectByQuestionId(List<Long> questionIdList) {
        return selectListByQuery(QueryWrapper.create()
                .where(QUESTION_OPTION.QUESTION_ID.in(questionIdList))
        );
    }

    /**
     * 根据问题ID删除选项
     * @param questionId 问题ID
     */
    default void deleteByQuestionId(long questionId) {
        deleteByQuery(QueryWrapper.create()
                .where(QUESTION_OPTION.QUESTION_ID.eq(questionId))
        );
    }

    /**
     * 根据植物ID和病害ID删除选项
     * @param plantId 植物ID
     * @param illId 病害ID
     */
    default void deleteByPlantId(Long plantId, Long illId) {
        deleteByQuery(QueryWrapper.create()
                .where(QUESTION_OPTION.PLANT_ID.eq(plantId))
                .or(QUESTION_OPTION.ILL_ID.eq(illId))
        );
    }
}
